subroutine print_som(kohonen_map,unit_)
!========================================================================================
!! Print function for self_organizing_map
class(self_organizing_map) :: kohonen_map
!!
integer,intent(inout),optional :: unit_
!!
integer :: ix,iy,iz,unit1
!
if(.not. present(unit_)) then
unit1=6;
else
unit1=unit_;
endif
write(unit1,*) 'SOM: Results';
write(unit1,*)
call kohonen_map%parameters%print(unit1);
! write(unit1,*) 'After'
write(unit1,*)
write(unit1,*) 'SOM: Grid nodes';
write(unit1,*)
do iz=1,size(kohonen_map%grid,3)
do iy=1,size(kohonen_map%grid,2);
do ix=1,size(kohonen_map%grid,1);
call kohonen_map%grid(ix,iy,iz)%print(unit1);
enddo
enddo!iy
enddo!ix
write(unit1,*)
write(unit1,*) 'SOM: Hit count';
write(unit1,*)
write(unit1,*) 'Pattern Numbers';
do iz=1,size(kohonen_map%number_patterns,3);
do ix=1,size(kohonen_map%number_patterns,1);
write(unit1,'(100I5)') (kohonen_map%number_patterns(ix,iy,iz),iy=1,&
size(kohonen_map%number_patterns,2));
enddo
enddo
write(unit1,*)
write(*,*) 'SOM: Pattern index'
write(unit1,*)
write(unit1,*)
write(unit1,*) 'Pattern #, ix ,iy';
do ix=1,size(kohonen_map%cells_index,1);
write(unit1,'(100I5)') ix, (kohonen_map%cells_index(ix,iy),&
iy=1,size(kohonen_map%cells_index,2));
enddo
!
end subroutine print_som